The world-wide network known as the “Internet” is composed of many different smaller networks that are all interconnected at the network layer (layer 3 of the OSI protocol model). By definition, the Internet uses Internet Protocol (IP) as its network layer, so that the Internet is homogeneous at the network layer. However, the Internet is very heterogeneous at the lower layers: the link layer (layer 2) and the physical layer (layer 1).
At the link layer, most local area networks (LANs) use some form of Ethernet, but the performance characteristics of these various forms of Ethernet vary widely. For example, Ethernet ranges from the 1 Mbps offered by wireless links such as 802.11 (WiFi) to 10 Mbps and even Gbps offered by various 802.3 wired links. Wide area network (WAN) links tend to offer much lower performance as compared to LAN links. For example, a T1 link offers 1.25 Mbps and a digital subscriber loop (DSL) link ranges from 2 Mbps to 10 Mbps.
Thus, the path from one Internet endpoint to another consists of links with varying performance characteristics, as measured, for example, in terms of bandwidth, delay, and rate of packet loss. Furthermore, the network conditions may change over time, for example, the delay on a path may increase as network traffic increases, or as rerouting from one link to another takes place. These changes can occur from session to session or even within a single session.
A conventional transport-layer protocol periodically characterizes network conditions, (e.g., bandwidth, delay, and packet loss) and can adapt to some level of change in network conditions. A conventional adaptation, for example, is to increase or decrease the congestion window. However, this sort of adaptation is limited—when a significant change in network condition occurs (e.g., a large change in bandwidth or delay), a conventional transport-layer protocol will suffer from reduced performance, as its adaptations are not flexible enough to accommodate the change.
One prior art approach to adapting the transport layer is replacing one transport-layer protocol with another between transport sessions. The dominant transport-layer on the Internet is Transport Control Protocol (TCP). TCP now exists in many variant forms, each designed to improve performance in a certain type of network environment. Examples are TCP with Selective Acknowledgement (TCP-SACK), TCP-Vegas, TCP with Explicit Loss Notification (TCP-ELN), and Wireless TCP (WTCP).
This prior art approach allows one variant of TCP to be replaced by another variant, but only after a session is complete. This prior art approach is limited because the protocol does not adapt during the operation of the transport protocol. Therefore, an improved transport protocol which adapts dynamically is desirable.